{"cells":[{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":52},"executionInfo":{"elapsed":26047,"status":"ok","timestamp":1715133220371,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"UBWVSATnTKHZ","outputId":"02f05757-f2e2-4437-8258-5e030a472c7a"},"outputs":[{"output_type":"stream","name":"stdout","text":["Mounted at /content/drive\n"]},{"output_type":"execute_result","data":{"text/plain":["'/content/drive/MyDrive/Research'"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"string"}},"metadata":{},"execution_count":1}],"source":["from google.colab import drive\n","drive.mount('/content/drive')\n","\n","%load_ext autoreload\n","%autoreload 2\n","\n","import os\n","#change to desired path\n","os.chdir(\"./drive/MyDrive/Research\")\n","%pwd"]},{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":65645,"status":"ok","timestamp":1715133286010,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"E1hR2vx82UXW","outputId":"a8b319ee-66ef-4168-c1a4-4e39876f9ecd"},"outputs":[{"output_type":"stream","name":"stdout","text":["Requirement already satisfied: torch in /usr/local/lib/python3.10/dist-packages (2.2.1+cu121)\n","Collecting datasets\n","  Downloading datasets-2.19.1-py3-none-any.whl (542 kB)\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m542.0/542.0 kB\u001b[0m \u001b[31m12.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: transformers in /usr/local/lib/python3.10/dist-packages (4.40.1)\n","Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (4.66.4)\n","Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (3.7.1)\n","Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch) (3.14.0)\n","Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/dist-packages (from torch) (4.11.0)\n","Requirement already satisfied: sympy in /usr/local/lib/python3.10/dist-packages (from torch) (1.12)\n","Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch) (3.3)\n","Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from torch) (3.1.3)\n","Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch) (2023.6.0)\n","Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch)\n","  Using cached nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)\n","Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch)\n","  Using cached nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)\n","Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch)\n","  Using cached nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)\n","Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch)\n","  Using cached nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)\n","Collecting nvidia-cublas-cu12==12.1.3.1 (from torch)\n","  Using cached nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)\n","Collecting nvidia-cufft-cu12==11.0.2.54 (from torch)\n","  Using cached nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)\n","Collecting nvidia-curand-cu12==10.3.2.106 (from torch)\n","  Using cached nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)\n","Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch)\n","  Using cached nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)\n","Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch)\n","  Using cached nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)\n","Collecting nvidia-nccl-cu12==2.19.3 (from torch)\n","  Using cached nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)\n","Collecting nvidia-nvtx-cu12==12.1.105 (from torch)\n","  Using cached nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)\n","Requirement already satisfied: triton==2.2.0 in /usr/local/lib/python3.10/dist-packages (from torch) (2.2.0)\n","Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch)\n","  Using cached nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n","Requirement already satisfied: numpy>=1.17 in /usr/local/lib/python3.10/dist-packages (from datasets) (1.25.2)\n","Requirement already satisfied: pyarrow>=12.0.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (14.0.2)\n","Requirement already satisfied: pyarrow-hotfix in /usr/local/lib/python3.10/dist-packages (from datasets) (0.6)\n","Collecting dill<0.3.9,>=0.3.0 (from datasets)\n","  Downloading dill-0.3.8-py3-none-any.whl (116 kB)\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m14.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from datasets) (2.0.3)\n","Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from datasets) (2.31.0)\n","Collecting xxhash (from datasets)\n","  Downloading xxhash-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (194 kB)\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.1/194.1 kB\u001b[0m \u001b[31m24.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hCollecting multiprocess (from datasets)\n","  Downloading multiprocess-0.70.16-py310-none-any.whl (134 kB)\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m18.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: aiohttp in /usr/local/lib/python3.10/dist-packages (from datasets) (3.9.5)\n","Collecting huggingface-hub>=0.21.2 (from datasets)\n","  Downloading huggingface_hub-0.23.0-py3-none-any.whl (401 kB)\n","\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m401.2/401.2 kB\u001b[0m \u001b[31m41.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n","\u001b[?25hRequirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from datasets) (24.0)\n","Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from datasets) (6.0.1)\n","Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers) (2023.12.25)\n","Requirement already satisfied: tokenizers<0.20,>=0.19 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.19.1)\n","Requirement already satisfied: safetensors>=0.4.1 in /usr/local/lib/python3.10/dist-packages (from transformers) (0.4.3)\n","Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.2.1)\n","Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (0.12.1)\n","Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (4.51.0)\n","Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.4.5)\n","Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (9.4.0)\n","Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (3.1.2)\n","Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (2.8.2)\n","Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.3.1)\n","Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (23.2.0)\n","Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.4.1)\n","Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (6.0.5)\n","Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (1.9.4)\n","Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp->datasets) (4.0.3)\n","Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n","Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (3.3.2)\n","Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (3.7)\n","Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (2.0.7)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->datasets) (2024.2.2)\n","Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->torch) (2.1.5)\n","Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2023.4)\n","Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->datasets) (2024.1)\n","Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.10/dist-packages (from sympy->torch) (1.3.0)\n","Installing collected packages: xxhash, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, dill, nvidia-cusparse-cu12, nvidia-cudnn-cu12, multiprocess, huggingface-hub, nvidia-cusolver-cu12, datasets\n","  Attempting uninstall: huggingface-hub\n","    Found existing installation: huggingface-hub 0.20.3\n","    Uninstalling huggingface-hub-0.20.3:\n","      Successfully uninstalled huggingface-hub-0.20.3\n","Successfully installed datasets-2.19.1 dill-0.3.8 huggingface-hub-0.23.0 multiprocess-0.70.16 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.19.3 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.1.105 xxhash-3.4.1\n"]}],"source":["%pip install torch datasets transformers tqdm matplotlib datasets"]},{"cell_type":"code","execution_count":3,"metadata":{"executionInfo":{"elapsed":7124,"status":"ok","timestamp":1715133293129,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"1FPZKShqU5tO"},"outputs":[],"source":["import os\n","from tqdm import tqdm\n","import matplotlib.pyplot as plt\n","import torch\n","from torch.utils.data import DataLoader, Dataset\n","from transformers import GPT2TokenizerFast\n","from utils import setup_logging, CfgNode as CN\n","from trainer import Trainer\n","from model import GPT\n","from datasets import load_dataset\n","import numpy as np"]},{"cell_type":"code","execution_count":4,"metadata":{"executionInfo":{"elapsed":15,"status":"ok","timestamp":1715133293130,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"-e7YOJniKspN"},"outputs":[],"source":["def download_and_tokenize(dataset_name, split, tokenizer, data_dir):\n","    os.makedirs(data_dir, exist_ok=True)\n","    filename = os.path.join(data_dir, f\"{dataset_name.split('/')[1]}_tokens.bin\")\n","    if os.path.exists(filename):\n","        print(f\"{filename} already exists, skipping download and tokenization...\")\n","        return filename\n","\n","    dataset = load_dataset(dataset_name, split=split, trust_remote_code=True)\n","    texts = dataset['text']\n","    tokens_np = []\n","    for text in tqdm(texts):\n","        tokens = tokenizer.encode(text)\n","        tokens_np.extend(tokens)\n","\n","    tokens_np = np.array(tokens_np, dtype=np.int32)\n","    with open(filename, \"wb\") as f:\n","        f.write(tokens_np.tobytes())\n","    print(f\"Saved {len(tokens_np)} tokens to {filename}\")\n","\n","    return filename"]},{"cell_type":"code","execution_count":5,"metadata":{"executionInfo":{"elapsed":11,"status":"ok","timestamp":1715133293130,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"W7901sfjU8hs"},"outputs":[],"source":["class WebTextDataset(Dataset):\n","    def __init__(self, token_file, block_size):\n","        self.token_array = np.fromfile(token_file, dtype=np.int32)\n","        self.block_size = block_size\n","\n","    def __len__(self):\n","        return len(self.token_array) - self.block_size\n","\n","    def __getitem__(self, idx):\n","        x = torch.tensor(self.token_array[idx:idx + self.block_size], dtype=torch.long)\n","        y = torch.tensor(self.token_array[idx + 1:idx + self.block_size + 1], dtype=torch.long)\n","        return x, y"]},{"cell_type":"code","execution_count":6,"metadata":{"executionInfo":{"elapsed":8,"status":"ok","timestamp":1715133293130,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"hE5hIYbeVAr4"},"outputs":[],"source":["def run_training(trainer, total_iters, early_stop_threshold):\n","    pbar = tqdm(total=total_iters, desc=\"Training progress\", leave=True)\n","    train_losses = []\n","    best_loss = float('inf')\n","    no_improve_count = 0\n","\n","    def update_progress(trainer):\n","        pbar.update(1)\n","        current_loss = trainer.loss.item()\n","        train_losses.append(current_loss)\n","        pbar.set_postfix_str(f\"Loss: {current_loss:.4f}\")\n","\n","        nonlocal best_loss, no_improve_count\n","        if current_loss < best_loss:\n","            best_loss = current_loss\n","            no_improve_count = 0\n","        else:\n","            no_improve_count += 1\n","        if no_improve_count >= early_stop_threshold:\n","            pbar.close()\n","            raise StopIteration(\"Early stopping triggered\")\n","\n","    trainer.add_callback('on_batch_end', update_progress)\n","\n","    try:\n","        trainer.run()\n","    except StopIteration as e:\n","        print(str(e))\n","    finally:\n","        try:\n","            pbar.close()\n","        except:\n","            pass\n","\n","    return train_losses\n"]},{"cell_type":"code","execution_count":34,"metadata":{"executionInfo":{"elapsed":424,"status":"ok","timestamp":1715134262919,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"RUiBfZstVtLA"},"outputs":[],"source":["C = CN()\n","C.system = CN()\n","C.system.work_dir = './out'\n","setup_logging(C)\n","\n","C.model = GPT.get_default_config()\n","C.model.model_type = 'gpt-mini'\n","C.model.vocab_size = 50257\n","C.model.block_size = 128\n","\n","C.trainer = Trainer.get_default_config()\n","#C.trainer.learning_rate = 5e-4\n","C.trainer.max_iters = 10000\n","\n","model_path = os.path.join(C.system.work_dir, 'model.pt')\n","early_stop_threshold = 100\n","data_dir = './data'"]},{"cell_type":"code","execution_count":8,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":2590,"status":"ok","timestamp":1715133297401,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"SLtzdliiLhjt","outputId":"d52130a4-c7c3-4fd4-ee7b-b8790232753f"},"outputs":[{"output_type":"stream","name":"stdout","text":["number of parameters: 36.22M\n"]}],"source":["model = GPT(C.model)"]},{"cell_type":"code","execution_count":9,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":333,"referenced_widgets":["28edfd5b4a5c48c7ba10efc97436a859","4dc0b24df33b44b3984cede3ca87c607","712a9cf4f2fc4ad28e091e38cb9fd2b3","f038a87f06774d3c82c0aacbf74fdbfd","96c57b254a094295ab5f298efec8309d","59863f1471b141bba8dcf3bc58f47531","534c8d81da9349b28770bea14f07d21c","3c49decc3aab46d2916283a359812ede","eee9343159804413914ba2fe1d7242ba","f2f3f0f39413484facc6d5d633314c43","082e889ae46949599ad8ffd8d7f40aca","3b82a2c2be6f4776969be77525d0498a","19c62bd1beb34385bcb2aca99cd8fdd9","c511f436aefb4bc5851bfa8940edee7d","d56cdaf734a04efd9c211865efbe9c8a","2d3148c233e14506ab9f9706c3eb26e4","b0001071d4c645bd94941d8326e49f34","f7b88d8d1c7c4f6085c10b3e5f943aea","b43b0bf42c4b4ba4a52d5720f719cf1c","1de2338628ad4dd1ba3121b2085f0634","3935322803a14fe0ac17e3d819a806bb","1de02616b97847038c11a923eae6f697","e25862a947b6495e9e5f6365975c097c","5df9bbf28009408388adaa8da1864d67","9a9d514cb1ce4fcdafe928c07778fdc7","f41b6de5c0d84742ba9e758df5993459","666645d808f1444a937e38342d805e46","af893b49caf94f9b89d1110b82384c44","4b2fb34b54eb47a8acea674f211482cd","e2497677a37e44c1bdf06e115ba1f73e","d6b56af99791484d86e60d4f65682fea","1682aed5f475400ca8ad5b64490643fa","138a15dac40e43e99c89c0482d8a9452","b84c85656f084591853e68e3ad17d7a6","cc6cd62d23d54b23a8ded325eba0b4d0","c8ab23429e7d4654a73f5f11079ed650","36b8148a296c4609a413293a7574f9e1","26480bb864da481186da6c0e8a8ddf2b","1ddb214ce0e44b4c861a2c3c65b69612","8948099ca36546b290646d9844f01cc2","ba902155cf13416c9b7726d682256e30","db8071c175b145c6b3cef02b1d005a60","b1a6fa3e034649c686e6d8e7cb3a07bc","1126669718c14f418794dedbcf0f8713","5a1a2e7be80f4cf7b185b98903fb64b5","0230406d20f3495c9b86a52063122668","a8ee27809f684315a1d8853b9be68718","9373d339196443f58ce4a15ca4b42a1e","57bce24832d8422c9979da4924fd2506","73395a168aa04dd690e8121a4d1c802f","495ab55fd6164d0abc3a1fff6b5cf33e","d90bef628dc64c149741cd6a40339ff0","414073c1adc94566a3de0cd2f1def1c6","54169cd2569b43d093b55947df016a05","2997d053cec442a096b7b81d79c901bd"]},"executionInfo":{"elapsed":7890,"status":"ok","timestamp":1715133305279,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"},"user_tz":240},"id":"GPcyJ4-MGWny","outputId":"91f0ac47-f7de-4ce2-8b37-2fa81a51415f"},"outputs":[{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.10/dist-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n","  warnings.warn(\n","/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: UserWarning: \n","The secret `HF_TOKEN` does not exist in your Colab secrets.\n","To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n","You will be able to reuse this secret in all of your notebooks.\n","Please note that authentication is recommended but still optional to access public models or datasets.\n","  warnings.warn(\n"]},{"output_type":"display_data","data":{"text/plain":["tokenizer_config.json:   0%|          | 0.00/26.0 [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"28edfd5b4a5c48c7ba10efc97436a859"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["vocab.json:   0%|          | 0.00/1.04M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"3b82a2c2be6f4776969be77525d0498a"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["merges.txt:   0%|          | 0.00/456k [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"e25862a947b6495e9e5f6365975c097c"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["tokenizer.json:   0%|          | 0.00/1.36M [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"b84c85656f084591853e68e3ad17d7a6"}},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["config.json:   0%|          | 0.00/665 [00:00<?, ?B/s]"],"application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"5a1a2e7be80f4cf7b185b98903fb64b5"}},"metadata":{}}],"source":["tokenizer = GPT2TokenizerFast.from_pretrained('gpt2')"]},{"cell_type":"code","execution_count":10,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"x66y9VhLVx57","executionInfo":{"status":"ok","timestamp":1715133884448,"user_tz":240,"elapsed":579176,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"}},"outputId":"9ba7a514-e082-4b2f-e5a3-c9b90e446a78"},"outputs":[{"output_type":"stream","name":"stdout","text":["./data/openwebtext_tokens.bin already exists, skipping download and tokenization...\n","running on device cuda\n"]},{"output_type":"stream","name":"stderr","text":["\rTraining progress:   0%|          | 0/10000 [00:00<?, ?it/s]/usr/lib/python3.10/multiprocessing/popen_fork.py:66: RuntimeWarning: os.fork() was called. os.fork() is incompatible with multithreaded code, and JAX is multithreaded, so this will likely lead to a deadlock.\n","  self.pid = os.fork()\n","Training progress:   9%|▊         | 869/10000 [09:34<1:40:31,  1.51it/s, Loss: 6.1973]"]},{"output_type":"stream","name":"stdout","text":["Early stopping triggered\n"]},{"output_type":"stream","name":"stderr","text":["\n"]}],"source":["token_file = download_and_tokenize(\"Skylion007/openwebtext\", 'train[:1%]', tokenizer, data_dir)\n","train_dataset = WebTextDataset(token_file, C.model.block_size)\n","trainer = Trainer(C.trainer, model, train_dataset)\n","losses = run_training(trainer, C.trainer.max_iters, early_stop_threshold)"]},{"cell_type":"code","execution_count":11,"metadata":{"id":"vut_SbEX27QN","colab":{"base_uri":"https://localhost:8080/","height":487},"executionInfo":{"status":"ok","timestamp":1715133884933,"user_tz":240,"elapsed":572,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"}},"outputId":"6bb3e9df-f87e-4fda-c1f8-b4b376a89ffe"},"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 1000x500 with 1 Axes>"],"image/png":"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OTkZN910E5555plaHQ+DUh3yLZ16l8egREREREQO/Pvvv5g6dSpuvfVWdOrUCREREbhw4UKdjsHf3x/h4eHYu3eveMxkMuHAgQPVfs527dqhpKQEu3fvFo9lZGTg9OnTaN++vXgsOjoajzzyCH799Vc8/fTT+Pzzz8X7QkNDMWXKFHz77bf44IMPsGTJkmqPpzI49a4O+Xlakjun3hERERGRI61atcKvv/6KcePGQaFQ4OWXX672dLfr8fjjj2P+/Plo1aoV4uLisHDhQmRlZVWqmnb06FH4+fmJtxUKBbp06YLx48fjwQcfxGeffQY/Pz+88MILaNKkCcaPHw8AePLJJzF69Gi0adMGWVlZ2Lx5M9q1awcAmD17Nrp3744OHTrAYDDgjz/+EO+rLQxKdUjHqXdEREREVI53330XDzzwAPr164eQkBA8//zz0Ov1dT6O559/HikpKbjvvvugUqnw0EMPYeTIkVCpKl6fNWjQINltlUqFkpISLF26FE888QRuvvlmFBcXY9CgQVi7dq04DdBkMmHGjBm4fPkydDodRo0ahffffx+AZS+oF198ERcuXICXlxcGDhyIH374oea/cQmF4OrJiLVMr9fD398fOTk50Ol0Lh3LT3sv4tlfjqF/bDC+e7CPS8dCjZvRaMTatWsxZswYuznKRHWF1yG5A16H9UNRURESExPRokULeHp6uno4tcLa9U6n00GpdL/VMWazGe3atcMdd9yBV1991dXDKVd510tVsgErSnVIbA9uMLp4JEREREREzl28eBEbN27E4MGDYTAYsGjRIiQmJuLuu+929dDqjPvF1QbM15PNHIiIiIjI/SmVSixbtgw9e/ZE//79cfToUWzatKnW1wW5E1aU6pC1PbieQYmIiIiI3Fh0dDR27Njh6mG4FCtKdYj7KBERERER1Q8MSnXIT2tZJGooMaO4pO7bPBIRERHVZw28BxnVkJq6ThiU6pCvtqydYm4RGzoQERERVYa1I2FBQYGLR0L1gfU6ud5OllyjVIfUKiW8VQIKTApk5Bcj2Ffr6iERERERuT2VSoWAgACkpaUBALy9vSu18Wl9YjabUVxcjKKiIrdsD14fCIKAgoICpKWlISAgoFJ7PpWHQamO+WuBggLgak4R2oT7VfwAIiIiIkJERAQAiGGpoREEAYWFhfDy8mpwIbCuBQQEiNfL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d8nVwyEiIiIiqnXVCkqXLl3C5cuXxdt79uzBk08+iSVLltTYwMh9aFRKeGlUAIAXfj2KmBf+xNsbTrl4VEREREREtadaQenuu+/G5s2bAQApKSkYPnw49uzZg5deegnz5s2r0QGSeygoNsluf7z5nItGQkRERERU+6oVlI4dO4ZevXoBAFauXImOHTvi33//xXfffYdly5bV5PjITdzarYndMUHgeiUiIiIiapiqFZSMRiO0Wi0AYNOmTbjlllsAAHFxcbh69WrNjY7cxss3t8fiyTfAT6sWj+Ua2C6ciIiIiBqmagWlDh064NNPP8W2bdsQHx+PUaNGAQCSk5MRHBxcowMk9xDk44HRnSKx/YUboVBYjqXpDa4dFBERERFRLalWUFqwYAE+++wzDBkyBJMmTUKXLl0AAKtXrxan5FHD5O+lQcsQHwDcV4mIiIiIGi51xafYGzJkCNLT06HX6xEYGCgef+ihh+Dt7V1jgyP3FObniXPX8pGWy4oSERERETVM1aooFRYWwmAwiCHp4sWL+OCDD3D69GmEhYXV6ADJ/YTpLOvT0nJZUSIiIiKihqlaQWn8+PH45ptvAADZ2dno3bs33n33XUyYMAGLFy+u0QGS+wnzKw1KXKNERERERA1UtYLSgQMHMHDgQADAzz//jPDwcFy8eBHffPMNPvrooxodILmfpoGW6ZVfbE9Enzf+QkoOK0tERERE1LBUKygVFBTAz88PALBx40bcdtttUCqV6NOnDy5evFijAyT307152bq0FH0Rvt11Ean6IpSYzC4cFRERERFRzalWUGrVqhVWrVqFS5cuYcOGDRgxYgQAIC0tDTqdrkYHSO6nXaT8Z7xo81n0fuMvvLnulItGRERERERUs6oVlGbPno1nnnkGMTEx6NWrF/r27QvAUl3q1q1bjQ6Q3I9KqUDbcD+7419sT4SRVSUiIiIiagCqFZT+85//ICkpCfv27cOGDRvE4zfddBPef//9Ghscua8vpvTAsyPbolWYr+z43sRMF42IiIiIiKjmVGsfJQCIiIhAREQELl++DABo2rQpN5ttRKKDvDFjaCuk5xlwNi1PPL7rfAb6tQpx4ciIiIiIiK5ftSpKZrMZ8+bNg7+/P5o3b47mzZsjICAAr776KsxmTr1qTO7t0xxaddlldJUd8IiIiIioAahWRemll17Cl19+iTff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\n"},"metadata":{}}],"source":["plt.figure(figsize=(10, 5))\n","plt.plot(losses, label='Training Loss')\n","plt.title('Training Loss over Iterations')\n","plt.xlabel('Iterations')\n","plt.ylabel('Loss')\n","plt.legend()\n","plt.grid(True)\n","plt.show()"]},{"cell_type":"code","execution_count":12,"metadata":{"id":"oG1_vJb92Oq3","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1715133887021,"user_tz":240,"elapsed":2118,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"}},"outputId":"483bd399-f38b-4790-b936-dde35d84a66d"},"outputs":[{"output_type":"stream","name":"stdout","text":["Model saved to ./out/model.pt\n"]}],"source":["torch.save(model.state_dict(), model_path)\n","print(f\"Model saved to {model_path}\")"]},{"cell_type":"code","execution_count":35,"metadata":{"id":"RTGmTQZN3bJm","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1715134287291,"user_tz":240,"elapsed":20281,"user":{"displayName":"Akaash Dash","userId":"13218395677520055804"}},"outputId":"ca42d108-ac5f-4ee6-ee8d-6db02488d077"},"outputs":[{"output_type":"stream","name":"stdout","text":["number of parameters: 36.22M\n"]},{"output_type":"stream","name":"stderr","text":["/usr/local/lib/python3.10/dist-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n","  warnings.warn(\n"]},{"output_type":"stream","name":"stdout","text":["Generated text: Yesterday, but his arch pipes has been like you are the game and the future. You're looking to step, and moving to accept the other weeks, and more that is.\n","\n","The part of a head of the same that the things is a \"A over the same comment are calling the warrant, I must be the programme, and it's not.\n","\n","In the \"From the time is not the ever left for an like the connection when we can be a universe. I was,\n"]}],"source":["model = GPT(C.model)\n","model.load_state_dict(torch.load(model_path))\n","tokenizer = GPT2TokenizerFast.from_pretrained('gpt2')\n","model.eval()\n","input_phrase = \"Yesterday\"\n","input_ids = tokenizer.encode(input_phrase, return_tensors='pt')\n","\n","with torch.no_grad():\n","    output = model.generate(input_ids, max_new_tokens=100, temperature=0.75, do_sample=True)\n","\n","generated_text = tokenizer.decode(output[0])\n","print(f\"Generated text: {generated_text}\")"]},{"cell_type":"markdown","metadata":{"id":"4txNVu6aV1YN"},"source":[]}],"metadata":{"colab":{"machine_shape":"hm","provenance":[],"gpuType":"A100"},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"},"accelerator":"GPU","widgets":{"application/vnd.jupyter.widget-state+json":{"28edfd5b4a5c48c7ba10efc97436a859":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_4dc0b24df33b44b3984cede3ca87c607","IPY_MODEL_712a9cf4f2fc4ad28e091e38cb9fd2b3","IPY_MODEL_f038a87f06774d3c82c0aacbf74fdbfd"],"layout":"IPY_MODEL_96c57b254a094295ab5f298efec8309d"}},"4dc0b24df33b44b3984cede3ca87c607":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_59863f1471b141bba8dcf3bc58f47531","placeholder":"​","style":"IPY_MODEL_534c8d81da9349b28770bea14f07d21c","value":"tokenizer_config.json: 100%"}},"712a9cf4f2fc4ad28e091e38cb9fd2b3":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_3c49decc3aab46d2916283a359812ede","max":26,"min":0,"orientation":"horizontal","style":"IPY_MODEL_eee9343159804413914ba2fe1d7242ba","value":26}},"f038a87f06774d3c82c0aacbf74fdbfd":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_f2f3f0f39413484facc6d5d633314c43","placeholder":"​","style":"IPY_MODEL_082e889ae46949599ad8ffd8d7f40aca","value":" 26.0/26.0 [00:00&lt;00:00, 2.09kB/s]"}},"96c57b254a094295ab5f298efec8309d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"59863f1471b141bba8dcf3bc58f47531":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"534c8d81da9349b28770bea14f07d21c":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3c49decc3aab46d2916283a359812ede":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"eee9343159804413914ba2fe1d7242ba":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"f2f3f0f39413484facc6d5d633314c43":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"082e889ae46949599ad8ffd8d7f40aca":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"3b82a2c2be6f4776969be77525d0498a":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_19c62bd1beb34385bcb2aca99cd8fdd9","IPY_MODEL_c511f436aefb4bc5851bfa8940edee7d","IPY_MODEL_d56cdaf734a04efd9c211865efbe9c8a"],"layout":"IPY_MODEL_2d3148c233e14506ab9f9706c3eb26e4"}},"19c62bd1beb34385bcb2aca99cd8fdd9":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b0001071d4c645bd94941d8326e49f34","placeholder":"​","style":"IPY_MODEL_f7b88d8d1c7c4f6085c10b3e5f943aea","value":"vocab.json: 100%"}},"c511f436aefb4bc5851bfa8940edee7d":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_b43b0bf42c4b4ba4a52d5720f719cf1c","max":1042301,"min":0,"orientation":"horizontal","style":"IPY_MODEL_1de2338628ad4dd1ba3121b2085f0634","value":1042301}},"d56cdaf734a04efd9c211865efbe9c8a":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_3935322803a14fe0ac17e3d819a806bb","placeholder":"​","style":"IPY_MODEL_1de02616b97847038c11a923eae6f697","value":" 1.04M/1.04M [00:00&lt;00:00, 1.60MB/s]"}},"2d3148c233e14506ab9f9706c3eb26e4":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"b0001071d4c645bd94941d8326e49f34":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"f7b88d8d1c7c4f6085c10b3e5f943aea":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"b43b0bf42c4b4ba4a52d5720f719cf1c":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1de2338628ad4dd1ba3121b2085f0634":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"3935322803a14fe0ac17e3d819a806bb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1de02616b97847038c11a923eae6f697":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e25862a947b6495e9e5f6365975c097c":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_5df9bbf28009408388adaa8da1864d67","IPY_MODEL_9a9d514cb1ce4fcdafe928c07778fdc7","IPY_MODEL_f41b6de5c0d84742ba9e758df5993459"],"layout":"IPY_MODEL_666645d808f1444a937e38342d805e46"}},"5df9bbf28009408388adaa8da1864d67":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_af893b49caf94f9b89d1110b82384c44","placeholder":"​","style":"IPY_MODEL_4b2fb34b54eb47a8acea674f211482cd","value":"merges.txt: 100%"}},"9a9d514cb1ce4fcdafe928c07778fdc7":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_e2497677a37e44c1bdf06e115ba1f73e","max":456318,"min":0,"orientation":"horizontal","style":"IPY_MODEL_d6b56af99791484d86e60d4f65682fea","value":456318}},"f41b6de5c0d84742ba9e758df5993459":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1682aed5f475400ca8ad5b64490643fa","placeholder":"​","style":"IPY_MODEL_138a15dac40e43e99c89c0482d8a9452","value":" 456k/456k [00:00&lt;00:00, 702kB/s]"}},"666645d808f1444a937e38342d805e46":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"af893b49caf94f9b89d1110b82384c44":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"4b2fb34b54eb47a8acea674f211482cd":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"e2497677a37e44c1bdf06e115ba1f73e":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"d6b56af99791484d86e60d4f65682fea":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"1682aed5f475400ca8ad5b64490643fa":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"138a15dac40e43e99c89c0482d8a9452":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"b84c85656f084591853e68e3ad17d7a6":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_cc6cd62d23d54b23a8ded325eba0b4d0","IPY_MODEL_c8ab23429e7d4654a73f5f11079ed650","IPY_MODEL_36b8148a296c4609a413293a7574f9e1"],"layout":"IPY_MODEL_26480bb864da481186da6c0e8a8ddf2b"}},"cc6cd62d23d54b23a8ded325eba0b4d0":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_1ddb214ce0e44b4c861a2c3c65b69612","placeholder":"​","style":"IPY_MODEL_8948099ca36546b290646d9844f01cc2","value":"tokenizer.json: 100%"}},"c8ab23429e7d4654a73f5f11079ed650":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_ba902155cf13416c9b7726d682256e30","max":1355256,"min":0,"orientation":"horizontal","style":"IPY_MODEL_db8071c175b145c6b3cef02b1d005a60","value":1355256}},"36b8148a296c4609a413293a7574f9e1":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_b1a6fa3e034649c686e6d8e7cb3a07bc","placeholder":"​","style":"IPY_MODEL_1126669718c14f418794dedbcf0f8713","value":" 1.36M/1.36M [00:01&lt;00:00, 1.24MB/s]"}},"26480bb864da481186da6c0e8a8ddf2b":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1ddb214ce0e44b4c861a2c3c65b69612":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"8948099ca36546b290646d9844f01cc2":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"ba902155cf13416c9b7726d682256e30":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"db8071c175b145c6b3cef02b1d005a60":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"b1a6fa3e034649c686e6d8e7cb3a07bc":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"1126669718c14f418794dedbcf0f8713":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"5a1a2e7be80f4cf7b185b98903fb64b5":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_0230406d20f3495c9b86a52063122668","IPY_MODEL_a8ee27809f684315a1d8853b9be68718","IPY_MODEL_9373d339196443f58ce4a15ca4b42a1e"],"layout":"IPY_MODEL_57bce24832d8422c9979da4924fd2506"}},"0230406d20f3495c9b86a52063122668":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_73395a168aa04dd690e8121a4d1c802f","placeholder":"​","style":"IPY_MODEL_495ab55fd6164d0abc3a1fff6b5cf33e","value":"config.json: 100%"}},"a8ee27809f684315a1d8853b9be68718":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_d90bef628dc64c149741cd6a40339ff0","max":665,"min":0,"orientation":"horizontal","style":"IPY_MODEL_414073c1adc94566a3de0cd2f1def1c6","value":665}},"9373d339196443f58ce4a15ca4b42a1e":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_54169cd2569b43d093b55947df016a05","placeholder":"​","style":"IPY_MODEL_2997d053cec442a096b7b81d79c901bd","value":" 665/665 [00:00&lt;00:00, 55.9kB/s]"}},"57bce24832d8422c9979da4924fd2506":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"73395a168aa04dd690e8121a4d1c802f":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"495ab55fd6164d0abc3a1fff6b5cf33e":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"d90bef628dc64c149741cd6a40339ff0":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"414073c1adc94566a3de0cd2f1def1c6":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"54169cd2569b43d093b55947df016a05":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"2997d053cec442a096b7b81d79c901bd":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}}},"nbformat":4,"nbformat_minor":0}